Displaying advertisements in a computer network environment

ABSTRACT

A method of presenting advertising to viewers in a computer network environment includes monitoring a viewer&#39;s interactions with an associated computer system, and adjusting a timing of displayed advertisements on the viewer&#39;s associated computer system based on one or more of the viewer&#39;s monitored interactions.

TECHNICAL FIELD

The invention relates to displaying advertisements in a computer networkenvironment, for example, on the Internet.

BACKGROUND

The computer system 100 illustrated in FIG. 1 represents a typicalcomputer setup for executing software that allows a user to performtasks such as communicating with other computer users, accessing variouscomputer resources, and viewing, creating, or otherwise manipulatingelectronic content—that is, any combination of text, images, movies,music or other sounds, animations, 3D virtual worlds, and links to otherobjects. The system includes input/output (I/O) devices (e.g., a mouse103, a keyboard 105, and a display 107) and a general purpose computer110 having a central processor unit (CPU) 115, an I/O unit 120 and amemory 125. The memory 125 stores data and various programs such as anoperating system 130, and one or more application programs 135. Thecomputer 110 also typically includes some sort of communications card ordevice 140 (e.g., a modem or network adapter) for exchanging data with anetwork 145 through a communications link 150 (e.g., a telephone line).

As shown in FIG. 2, a user of a computer system 200 can accesselectronic content or other resources either stored locally at theuser's own client system 205 (for example, a personal or laptopcomputer) or remotely at one or more server systems 210.

Communications between the client system 205 and the server system 210may be provided, for example, by a direct dial up through a modem 215and a telephone network 220, or through a network connection 225 using,for example, the TCP/IP protocol.

An example of a server system 210 is a host computer that providessubscribers with online computer services such as e-mail, e-commerce,chat rooms, Internet access, and electronic newspapers and magazines.Users of a host computer's online services typically communicate withone or more central server systems 210 through client software executingon their respective client systems 205.

In typical practice, a server system 210 will not be a single monolithicentity. Rather, it will be a network of interconnected server computers,possibly physically dispersed from each other, each dedicated to its ownset of duties and/or to a particular geographical region. In such acase, the individual servers are interconnected by a network ofcommunication links. One such server system is provided by AmericaOnline, Inc. of Virginia.

A “browser” is an example of client software that enables users toaccess and view electronic content stored either locally or remotely,such as in a network environment (e.g., a local area network (LAN), anintranet, or the Internet). A browser typically is used for displayingdocuments described in Hyper-Text Markup Language (HTML) and stored onservers connected to a network such as the Internet. A user instructs abrowser to access an HTML document, or web page, by specifying a networkaddress—or Uniform Resource Locator (URL)—at which a desired documentresides. In response, the browser contacts the corresponding serverhosting the requested web page, retrieves the one or more files thatmake up the web page, and then displays the web page in a window on theuser's computer screen.

FIG. 3 is a screenshot of a browser application 300 (Microsoft InternetExplorer) displaying a typical HTML document, or web page 302. As showntherein, a single web page 302 may be composed of several differentfiles that may be of different data types 304 (for example, text,graphics, images, virtual worlds, sounds, or movies). In addition, a webpage can include links 306 pointing to other resources (for example, webpages or individual files) available on the network. Links 306 can takevirtually any visual form. For example, a link can appear either as atext string, a graphical image, or a combination of the two. Each link306 has an associated URL pointing to a location on the network. When auser clicks on, or otherwise selects, a displayed link 306, the browserautomatically retrieves the web page (or other resource) correspondingto the link's associated URL and displays it to, or executes it for, theuser.

Many commercial web-site operators generate revenue by displayingadvertisements (or ads) on their web pages. A typical ad is displayed asa “banner”—a generally rectangular graphic image that serves as a linkto another web site or URL. FIG. 3, for example, shows a web page thatincludes four ads 307-310.

Typically, ads are sold on the basis of cost per thousand impressions(CPM). The definition of an impression varies between advertisingmediums. For example, when a radio station plays a commercial, eachperson tuned to that station counts as an impression. For billboards,each passing motorist that views the billboard counts as an impression.Likewise, each person that is likely to read a display ad in a magazinecounts as an impression for that ad. In an interactive media, such asthe Internet, each computer screen to which a promotional message isdelivered counts as an impression. In all cases, it is the potentialthat the person saw or heard the ad that constitutes an impression; itis not necessary for the person to actually mentally register the ad orrespond to it.

The term “inventory” is used to define the number of potentialimpressions that an advertising vehicle can generate within a given timeframe. For example, an owner of ten billboards on a highway with 10,000passing motorists a day has a daily inventory of 100,000 ad impressions.This inventory then is sold (e.g., as a paid ad on the billboard). Mostadvertising inventory is sold in minimum units of 1,000 impressions. TheCPM charged to an advertiser varies widely; for example, a late nightcable TV ad might be sold at $1 CPM while direct response ads forpremium products to a very targeted audience might be sold at $200 CPM.Internet advertising typically is sold anywhere in the $1-$120 range,with most sales falling in the $20-$40 range.

Advertisers create media plans that detail the specifics of anadvertising campaign. Typical elements of a media plan include: (1) abudget; (2) a time frame; (3) a target audience; (4) reach (how manypeople should see the advertising); (5) frequency (how often each personshould see the advertising); (6) quantity (derived from the product ofreach and frequency); and (7) placement (where the advertising should bepresented, such as, for example, on the Internet, on radio, or in anewspaper. Media plans can vary dramatically based on the product beingmarketed. For example, a movie studio may want to reach a largepercentage of the U.S. population within one week of a major blockbusterrelease, with each person seeing or hearing an ad for the movie at leastfive times. The movie studio's media plan might call for placement ofadvertising on prime-time television on all major television networks aswell as on drive-time radio on the top three radio stations in everymajor market.

On the other hand, a high-risk, high-yield mutual fund companyinterested in marketing a mutual fund product to sophisticated investorswith money to invest might want to target only the wealthiest onepercent of the U.S. population, with each person seeing the ad twentytimes over a three-month period. The mutual fund company's media planmight call for placement of advertising on news and business cablestations, in The Wall Street Journal, and in investor publications.Comparing total spending on their media plans, the movie studio islikely to spend more money on its four-day campaign than the mutual fundcompany will spend on its three-month campaign. However, because of itsplacement and targeting, the mutual fund company is likely to purchaseits advertising at a much higher CPM.

Similar media plans can be developed for owners of computer networkenvironments, such as web page hosts and operators. Different web pagesmay be targeted at different audiences with different interests. Someweb pages may be general in nature while others may be specific. Forexample, FIG. 3, which is a screen shot of AOL Inc.'s web pagehttp://www.aol.com, illustrates an example of a general web page. Someof the links 306 to other web pages that can be accessed from that pageare specific, such as the gardening web page 320 shown in FIG. 4.Accordingly, ads placed on the general web page 302 are more likely tobe seen by a larger audience than ads placed on the gardening web page320. However, ads placed on the gardening web page 320 are more likelyto be seen by viewers interested in gardening and, therefore, the CPM ofimpressions sold for the gardening web page are likely to be higher thanthe CPM of impressions sold for the general web page 302.

Advertising is prevalent on web sites, web TV systems, and browsers, andis likely to experience increased use in these and other computernetwork-based applications because it provides a source of income forweb site operators, just as it does for owners of television stations,billboards, radio stations, and magazines. This income, in turn, may beused to subsidize the cost of the web site and services offered by thewebsite to the end user, and often may make the services free to the enduser.

A web page, when displayed in a browser, occupies some portion of theavailable “real estate” (i.e., visible area) of a user's displaymonitor. The screen real estate occupied by a given web page typicallyis divided among ads, links, substantive information, and searchengines. Each different type of web page content (e.g., ads, links, orsubstantive information) can be associated with a different screen realestate area.

As shown in FIG. 5, which shows different types of web page content, ina web page 500, links 505 appear at one screen area, substantiveinformation 510 appears at another screen area, ads 515 appear at yetanother screen area, and so on. When new web page content is to bedisplayed to a user, the web page typically will be redisplayed with theold content being replaced by new content of the same type andpositioned at the same screen area. For example, as shown in FIG. 6,which shows a screenshot of the same web page as FIG. 5 when accessed atanother time, ad 515 has been replaced by another ad 520 in the samescreen real estate area 523. In this example, the ad displayed in screenreal estate area 523 alternates between two advertisers and, further,referring also to FIG. 7, between ad 520 and a related ad 530 displayedin screen real estate area 523 each time that the web page is accessed.The design of the display and its changing nature are intended to offervariety in the ads appearing in screen real estate area 523.

Users viewing content on the Internet typically do not view an entirepage devoted only to advertising. As illustrated in FIGS. 5-7, web pagestypically include substantive content or serve as a “menu” with links toother sites having substantive content. Although web pages potentiallycould consist entirely of ads, typically it is the substantive contentthat draws viewers to a particular web page and retains their interest.Accordingly, ads generally are displayed in less obtrusive screen realestate, such as in an upper or lower corner. To encourage a user tonotice an ad, and to retain the user's attention, marketing researchershave developed techniques relating to the display of content in thescreen's advertising real estate. These techniques include varying theads displayed on a certain screen over time, displaying animated orstatic graphic interface format (GIF) files, generating sounds,displaying interactive ads, and varying the sponsor and content of theads.

SUMMARY

In one general aspect, a method of presenting advertising to viewers ina computer network environment includes monitoring a viewer'sinteractions with an associated computer system, and adjusting a timingof advertisements displayed on the viewer's associated computer systembased on one or more of the viewer's monitored interactions.

Implementations may include one or more of the following features. Forexample, adjusting the timing may include adjusting an ad expirationtuning parameter that is configured to set the quantity of time forwhich an advertisement is available for display, the time of displayedadvertisements may be adjusted in a way designed to capture a user'sattention, such as by changing advertisements only after the user hasbeen idle for a short, specified period of time (e.g., 5 seconds). Inaddition, adjusting a maximum display count that sets a maximum numberof times an advertisement may be displayed to a user viewing a batch ofads, adjusting a minimum display time that sets a minimum amount of timethat an advertisement may be displayed before another advertisement isdisplayed, adjusting an idle delay that causes a delay from the time auser has gone idle before a first advertisement is replaced with anotheradvertisement, adjusting an active delay that causes a delay from thetime a user goes active before displaying another advertisement, andadjusting an idle (no spin) timer that stops the display of a firstadvertisement from being replaced with the display of anotheradvertisement after a user goes idle for so long that is it unlikelythat the user is actually looking at the screen.

Monitoring a viewer's interactions with an associated computer systemmay include monitoring a maximization and minimization status of awindow displaying advertising, and monitoring occlusion of that window.If the window is minimized or occluded, the method may include notswitching between advertisements. Monitoring a viewer's interactionswith an associated computer system also may include monitoring aviewer's use of a device that sends an input, or causes an input to besent, to the associated computer system. For example, monitoring aviewer's interactions with an associated computer system may includemonitoring use of a computer mouse, a computer keyboard, and/or amicrophone.

In another general aspect, a system for presenting advertising toviewers in a computer network environment includes software programmedto monitor a viewer's interactions with an associated computer system,and software to adjust a timing of advertisements displayed on theviewer's associated computer system based on one or more of the viewer'smonitored interactions.

In another general aspect, displaying advertisements in a computernetwork environment includes providing advertisements, providing one ormore tuning parameters configured to cause a display of a firstadvertisement to be changed to a display of another advertisement, anddownloading the advertisements and tuning parameters to a viewer'scomputer.

In another general aspect, optimizing a click-through rate of a userviewing content in a computer network environment includes providingadvertisements, providing a set of tuning parameters, downloading theadvertisements and tuning parameters to the user's computer, storingclick-through information for the advertisements, and sending theclick-through information to a host computer. The tuning parameters areconfigured to cause a display of a first advertisement on a user'scomputer to be changed to a display of another advertisement on theuser's computer based on the user's activity with respect to the user'scomputer.

Implementations may include one or more of the following features. Forexample, the tuning parameters downloaded to the user's computer may bevaried, and a correlation technique may be used to determine acorrelation between the tuning parameters downloaded to the user'scomputer and the click-through rate of the user. A set of tuningparameters may be associated with each individual ad, or with a group ofads. Another set of tuning parameters may be set based on thecorrelation between the tuning parameters and the user's click-throughrate. This correlation may be further refined by user or by class ofuser (e.g., by different age groups). In another general aspect, asystem for timing the display of advertisements on a web page includes ahost computer, a set of at least a first advertisement and a secondadvertisement, a set of tuning parameters stored on the host computer,and a software program stored on the host computer and including the setof tuning parameters. The tuning parameters are configured to cause adisplay of the first advertisement to be changed to a display of thesecond advertisement and are downloadable to a user computer.

The techniques for timing the display of ads provide numerousadvantages. For example, timing the start of an ad to coincide with thetime that viewers are most likely to be viewing the screen increases thelikelihood that viewers actually will view the ad. Timing an ad to end aset amount of time after the ad starts increases the likelihood thatviewers will have time to view the ad and decide to click through thead. By increasing the likelihood that viewers will click through the ad,the CPM for the web site on which that ad is displayed can be increased,which increases the revenue for the web site host or operator. Inaddition, the methods and techniques for optimizing the tuningparameters can be further used to optimize click-through rates of, forexample, ads, web pages, users, and groups of users.

The systems and techniques described here for displaying ads such thatthey catch and hold viewers' attention are based in part on the premisethat viewers tend to pay attention to the transition from one ad toanother. Accordingly, by continually varying the lengths of time duringwhich ads are displayed, as well as by basing the transition between adson viewers' interactions with a computer displaying the ads, the viewerswill become and remain engaged. For example, the ads can be transitionedat various times after the user has gone idle with respect to thecomputer.

Varying the lengths of time that ads are displayed and transitioningbetween ads based on viewers' interactions can be implemented in systemsand techniques using tuning parameters, such as are described below.Such systems and techniques can be employed in virtually any GraphicalUser Interface (GUI) or other display environment in which content ispresented to viewers. For example, the systems and techniques can beemployed to considerable advantage in association with an instantmessaging GUI. Other examples where similar ad timing techniques couldbe used include web browsers, web-based TV systems, chat room GUIs, andthe like.

The details of one or more embodiments are set forth in the accompanyingdrawings and the description below. Other features and advantages willbe apparent from the description and drawings, and from the claims.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a computer system.

FIG. 2 shows a typical network computing environment.

FIGS. 3 and 4 show a screenshot of a browser displaying a web page.

FIGS. 5-7 are screenshots of a web page at successive points in time.

FIGS. 8-12 are screenshots of an instant messaging system.

FIG. 13 is a screenshot of a web site directed to an ad.

FIGS. 14-16 are flowcharts showing a decision-making process todetermine if the display of an ad should be replaced by the display ofanother ad.

FIG. 17 is a flowchart showing an implementation of ad timing usingtuning parameters to control the display of ads on a web page.

FIGS. 18-21 are screenshots of a web page at successive points in timeshowing an ad having multiple impressions and an animated ad.

FIGS. 22 and 23 are screenshots of an instant messaging system atsuccessive points in time showing an ad having multiple impressions.

FIG. 24 is a flowchart showing a decision-making process to determineoptimum tuning parameters.

DETAILED DESCRIPTION

Referring to FIGS. 8-12, an instant messaging system 800, such as AOL'sInstant Messenger (AIM), includes a “Buddy List” window 805 thatpresents a list of a user's buddies that are currently online. The buddylist window 805 includes an upper advertising “hot spot” 810 (an activeregion that can be sensed when the curser is atop it and can be used totrigger other actions) displaying an upper ad 815, a lower advertisinghot spot 820 displaying a lower ad 825, a list of people online tab 830,a list setup tab 835, a link 840 for sending messages, a link 845 forsending a buddy chat invitation, and other links 850 to the web. Thelist of people online 830 is divided into categories, such as buddies(i.e., friends) 855, family 860, and co-workers 865. The categories canbe uniquely specified by an individual user.

The ads presented in upper advertising hot spot 810 and loweradvertising hot spot 820 can be changed periodically to display a seriesof different ads. The ads 815 and 825 displayed in hot spots 810 and820, respectively, can be changed simultaneously or at different times.For example, as illustrated in FIG. 9, the upper ad 815 has beenreplaced with another ad 870, while the lower ad 825 has been replacedwith another ad 875.

As illustrated in FIG. 10, the ad 875 is an animated ad in which acursor 880 moves across the ad 875, and is designed to catch the user'sattention. Other forms of animated advertising also can be displayed inthe upper advertising hot spot 810 and the lower advertising hot spot820.

As illustrated in FIG. 11, the upper advertising hot spot 810 changes toan ad 885 while the lower advertising hot spot 820 continues to displaythe ad 875. As illustrated in FIG. 12, the upper advertising hot spot810 then can change to an ad 890, which is an ad that is related to thead 885. Although the ads 885 and 890 are not animated, there is a rapidflipping of the related ads 885 and 890.

As discussed in more detail below, a portion of the system 800 controlsad timing access and considers system idle time information. In thismanner, the timing of ad transitions can be tied to what the user isdoing in a particular application that has ads displayed. For example,the timing of an ad transition can be based on the user idle time withrespect to the system idle time rather than the application idle time.This is useful because the user may be idle in one application butactive in another.

By changing the ads at different times, there is an enhanced likelihoodthat an ad will catch a user's attention and cause the user to click onthe ad. Clicking on the ad 870, for example, causes a linked page 900 tobe displayed in the user's web browser window, as shown in FIG. 13.

Clicking on an ad hot spot to gain access to the underlying ad contentis referred to as a “click through.” The rate at which users click on anad to go to the linked ad is known as the click-through rate. Typically,click-through rates are reported as a percentage of impressions. Forexample, two click-throughs per hundred impressions is a click-throughrate of two percent.

The click-through rate can be measured and reported for differententities, such as a service, an ad, a web site, a technique ofdisplaying ads, a user, or a category of users. For example, if an ad isparticularly eye-catching in comparison to other ads, it is likely tohave a greater click-through rate than other, less eye-catching ads.Likewise, if a service or a web site displays ads in a prominent portionof the screen, the ads displayed in that portion of the screen arelikely to have a greater click-through rate than other, less prominentlydisplayed ads on the same screen. Techniques and systems for displayingads, such as by timing the display of ads based on activity of the user,can increase the click-through rate for ads in comparison to ads thatare not timed. With respect to timing, statistics can be generatedregarding the likelihood of click through relative to, for example, theamount of time that an ad is displayed or the amount of time that theuser is idle before the ad is displayed. These statistics can be used tocontrol ad timing in ways that improve click-through rates. In general,if an ad system operator can show an advertiser that displaying an ad onthe ad system will cause that ad to have an increased click-throughrate, for whatever reason, as compared to another ad system, the adsystem operator with the increased click-through rate likely will beable to sell impressions at a premium CPM.

To attract and retain a user's attention in a way that improves theclick-through rate, the timing and rate at which ads displayed inadvertising hot spots, such as hot spots 810 and 812 of FIGS. 8-12, canbe varied according to one or more tuning parameters. Tuning parametersinclude ad expiration, maximum display count, minimum display time, idledelay, active delay, and idle (no spin), all of which are describedbelow. The tuning parameters can be determined and specified by the adsystem operator, the advertiser, or both, to increase the click-throughrate. The tuning parameters set the rate at which ads are changed and/orunder what conditions they are changed. Typically, tuning parameters areused to cause the display of an ad to be replaced by the display ofanother ad based on a user's activity with respect to the user'scomputer. A set of tuning parameters can be specific to an ad, to anadvertiser, or to all of the ads displayed on a particular page orscreen. The parameters can be optimized, as described below, to improvethe effectiveness of a marketing campaign using advertising on theInternet or on another computer network or service.

Tuning parameters may be associated with ads displayed on an instantmessaging program screen, or other service, and may be downloaded withthe ads in batches. Software supporting the service at the user's system(“client software”) may periodically contact the ad server and downloada batch of ads and their associated tuning parameters, where each ad hasan associated tuning parameter. For example, the client software maycontact the ad server every twenty minutes.

“Ad expiration” refers to the quantity of time for which an ad isavailable for display. Once the expiration has passed, the ad will nolonger be displayed. Typically, the expiration is set for a period oftime greater than the frequency with which the client software requestsnew ads from the server. In this manner, the expiration is a backstop toovercome potential problems resulting from the client software not beingable to connect to the ad server, due, for example, to network problems.Should such a case arise, the client software will continue to displaythe last batch of ads until the problem is solved, or the expirationtimes of the ads are exceeded. Once the expiration times of all of theavailable ads have been exceeded, the client software will stop showingads until contact with the server is reestablished. This ensuresadvertisers that they will not be billed for ads outside of theircontract period. In one example of ad expiration, a particular ad mayhave its expiration set on the basis of a relative clock, such as for 1hour, while the frequency of client connection with the ad server is 20minutes. In this example, the ad will not be displayed in the periodbeginning one hour after the ad has been downloaded to the client. Inanother example of ad expiration, a particular ad may have itsexpiration set to an absolute clock, such as 2 P.M. In this example, thead will not be displayed after 2 P.M. An absolute ad expiration clock isadvantageous when the ad relates to an event that is time sensitive,such as an ad for a sporting event.

“Maximum display count” refers to the maximum number of impressions of agiven ad that may be displayed to any one user in one batch of ads.Because ads are sold on a CPM basis, the maximum display count typicallyis based on the number of impressions purchased and the time periodbetween batches. Thus, if the purchaser of the advertising wants tospread the advertising over a set period, the maximum display count canbe specified so that the advertising does not occur in a concentratedportion of that set period. For example, if a company purchases 10,000impressions and wants to spread the impressions over ten days, thetarget impressions per day is specified for a subset of the overall timeperiod, e.g., no more than 1,000 impressions per day for each of the tendays. The maximum display count also may be specified by the ad systemoperator to prevent the display of more impressions than were purchased.

In general, the ad system operator or host has an approximate estimateof how many impressions overall per day will be generated by the adsystem screen, such as the screen of an instant message program. Theoperator or host can use that knowledge to determine how manyimpressions can be sold. Typically, the distribution of impressionsacross the ads that are scheduled to run on a given day is done usingweighing factors. Thus, if the operator expects to have 10,000impressions in a day, and has sold 5,000 impressions to one advertiser Xand 3,000 impressions to another advertiser Y, leaving 2,000 spareimpressions for its own ad Z, the operator may assign the adsproportional weights. These values then define the order in which theads will be served and the frequency at which each will be served withina batch. Assuming that the operator typically displays twenty ads in abatch, the weights would be used to calculate the maximum display countfor each ad. For example, assuming a 20 minute ad batch andapproximately one ad per minute, the maximum display count foradvertisers X, Y, and Z would be 10, 6, and 4, respectively. This allowsthe operator to specify the mix of ads to be shown within one batch,while it may not attempt to manage the number of impressions deliveredto each advertiser across batches. Thus, if the operator's forecasts areincorrect and there are fewer impressions than expected, all of theadvertisers will under perform in proportion to their weight. Similarly,if there are more impressions than expected, the advertisers will overperform in proportion to their weight.

“Minimum display time” refers to the minimum amount of time that an admust be displayed before another ad is displayed. The values for minimumdisplay time are expressed in seconds, and typically vary betweenfifteen seconds and five minutes. When an ad is displayed, the ad willstay displayed for its minimum display time. When that time has elapsed,the ad will be rotated out and replaced by another ad, subject to theidle parameter described below. For example, if the minimum display timeis set at fifteen seconds, the ad will be displayed for at least fifteenseconds before another ad is displayed. The minimum display time is setlower than the ad expiration time. The minimum display time prevents“ad-idle-ad” situations in which the second occurrence of the ad is onlyfor a fleeting moment.

“Idle delay” designates the time to wait after a user has become “idle”before replacing an ad with another ad. The term “idle” is used todescribe the condition in which the user is not interacting with thecomputer through, for example, either the mouse, the keyboard, oranother device that sends, or causes to be sent, an input signal to thecomputer. If there is a conflict between the ad expiration timing andthe idle delay the idle delay, takes priority over the ad expirationtiming. The premise of “idle delay” is that shortly after a user hasgone idle, the user is most likely to look at the introduction of a newad. Idle delays may vary between animated ads and normal (non-animatedads) to account for differences in the likelihoods that the viewer hasbecome idle because the user is viewing the ad.

“Active delay” designates the time to wait after a user has becomeactive before rotating in a new ad. The premise of active delay is toprovide time for the user to click on the old ad before rotating in thenew ad. Without this feature, for example, if a user becomes activeafter being idle, a new ad may rotate in immediately. This could resultin a problem situation in which a user wants to click on an ad, butmovement of the mouse toward the ad causes the user to become active,which replaces the ad with a new ad and frustrates the user.

“Idle (no spin)” designates a period of time after a user goes idle tostop changing the ads. The premise of “idle (no spin)” is that the useris unlikely to view ads displayed on a computer monitor after the userhas been idle for a specified period of time (e.g., five minutes).

The timing of the change of ads displayed in screen real estate areascan be controlled by the tuning parameters described above. The tuningparameters can be implemented, for example, to cause an ad to bedisplayed for a specified period after the user has gone idle before thead is replaced with another ad. The advertiser benefits from such timingbased on the premise that the user is more likely to notice an adshortly after going idle than when the user is active. Delaying thedisplay of an ad so that it appears shortly after the screen's contentis updated draws more attention to the ad and increases the likelihoodthat a user will click on the ad.

Referring to FIGS. 14-16, the relative priority between the individualparameters can be varied to affect the outcome of any set of conditions.For example, as illustrated in FIG. 14, the client software of aninstant messaging service may use tuning parameters according to aprocedure 1000. Initially, the client software downloads a batch of adsand tuning parameters to the user's computer (step 1005). Tuningparameters may be associated with individual ads, with groups of ads, orwith the entire batch of ads. The client software may download the adsand tuning parameters when the user signs on to the instant messagingservice. The client software then obtains user information (step 1010).This information includes whether the user is active or idle.

As illustrated in FIG. 15, in obtaining the user information (step1010), the client software first determines whether the user is active(step 1015). If the user is active, the client software sets a statusvariable to active (step 1020) and initializes a user active timer (A)(step 1022). Otherwise, the client software sets the status variable toidle (step 1025). The client software then initializes a user idle timer(I) (step 1027) and returns to the procedure 1000. The client softwarethen displays a first ad that has a count less than the maximum and anad expiration time that has not exceeded either a relative clock (e.g.,1 hour) or an absolute clock (e.g., 2 PM) (step 1030), increments thecount for that ad (step 1033), sets a state variable “ad-ready-to-flip”to false (step 1035), and initializes a timer (T) for that ad (step1036). The client software then checks the tuning parameters (step1040). The state variable, “ad-ready-to-flip” is used to ensure that theuser has been idle before the allowing the ad to be flipped. Asdescribed below, the idle/active status of the user is periodicallychecked and, when the user is found to be idle, the state variable ischanged to true.

As illustrated in FIG. 16, in checking the tuning parameters (step1040), the client software initially determines whether the timer (T) isless than the minimum display time tuning parameter (step 1050). If thetimer is less than the minimum display time, the client softwaredetermines that no new ad is to be displayed (step 1053) and checks noother tuning parameters.

If the timer is greater than or equal to the minimum display time, theclient software determines whether the user is idle (step 1056). If theuser is not idle, the client software determines whether the activetimer A is greater than or equal to the active delay and whether thestate variable “ad-ready-to-flip” is set to true (step 1057). If thesetwo conditions are not met, the client software determines that no newad is to be displayed (step 1053) and checks no other tuning parameters.(In the described implementation, ads can only be changed after a userhas been idle. In an implementation in which an ad could be changed whenthe user is active, without having been idle, the client software wouldcheck the active delay tuning parameters.) If these two conditions aremet, the client software determines that a new ad should be displayed(step 1065).

If the user is idle, the client software determines whether the user hasbeen idle for more than the idle delay tuning parameter (i.e., I isgreater than or equal to the idle delay parameter) (step 1062). If thetimer (I) is less than the idle delay tuning parameter, the clientsoftware determines that no new ad is to be displayed (step 1053) andchecks no further tuning parameters.

If the timer (I) is greater than or equal to the idle delay tuningparameter, the client software sets the “ad-ready-to-flip” statevariable to true (step 1058) and determines whether the user has beenidle for less than the no spin parameter (step 1059). If the timer (I)is greater than or equal to the no spin tuning parameter (step 1059) theclient determines that no new ad is to be displayed (step 1053). If theuser has been idle for less than the no spin parameter (step 1059), theclient software determines that a new ad is to be displayed (step 1065).The client software then returns to the procedure 1000.

Upon returning to the procedure 1000, the software determines whetherthere has been a change in the user's status (step 1080). If so, thesoftware obtains user information (step 1085).

Next, the software determines whether a new ad should be displayed (step1090). If a new ad should be displayed, the procedure loops back anddisplays the next unexpired ad that has a count less than the maximumdisplay count tuning parameter (step 1030). If a new ad should not bedisplayed, the software loops back and checks the tuning parametersagain (step 1040).

Referring to FIG. 17, ad timing techniques may be implemented on auser's computer according to a procedure 1100. The procedure 1100includes setting the specified tuning parameters, downloading a set ofparameters to a user's computer and, when necessary, downloading anotherset of parameters to the user's computer. Different aspects of theprocedure may be implemented by different entities, such as theadvertisers, the ad system operator and the user's computer.

Typically, after an agreement has been reached between an advertiser andan advertising system operator, the operator determines and sets theappropriate tuning parameters for the ads (step 1105). This may be done,for example, by entering the parameters into a database of tuningparameters corresponding to ads. These tuning parameters then are storedon the host computer (e.g., the computer acting as the server for aninstant messaging system) (step 1110). When a user initiates an onlinesession with the host computer (step 1115), the host computer downloadsa first set of ads and associated stored tuning parameters to the user'scomputer (step 1120). As the user takes part in the online session, theads are displayed in accordance with the first set of tuning parameters(step 1125). If the user is online for a sufficient period, and/or theentire sequence of ads defined by the first set of tuning parameters isviewed (step 1130), the user's computer contacts the host computer andrequests a second set of ads and tuning parameters (step 1135). The newads and tuning parameters are downloaded to the user's computer (step1140), which then causes ads to be displayed in accordance with thesecond set of parameters (step 1145).

As an example of a set of tuning parameters, assume that an ad systemoperator has received orders from three advertisers that wish toadvertise on a screen of that ad system operator, and that only one userviews that screen. The advertisers will have paid for a specific numberof impressions and the ad system operator will determine and specify thetuning parameters to provide optimal effectiveness of the ads. In thisexample, Advertiser #1 has paid for 1,000 normal (i.e., static)impressions over 10 days at a rate of 100 impressions per day.Advertiser #2 has paid for 2,000 animated impressions over two days at arate of 1,000 impressions per day. Advertiser #3 has paid for 900 normalimpressions over one day. Referring to Table I, the ad system operatorare might create the tuning parameters shown to specify how sequencingbetween ads will be controlled. First, the maximum display counts areset to be 1, 10, and 9, respectively. The ad expiration parameter is setto ten days, two days, and one day, respectively, for the three ads. Theminimum display time is set at one minute for each ad, and the idledelay is set at two seconds for each ad. The active delay typically alsois set at two seconds. The idle (no spin) typically is set at a value ofapproximately five minutes. In general, in this example, the main valuethat varies between ads is the maximum display count, though othervalues can also vary.

TABLE I Maximum Display Ad Minimum Active Idle (No Count ExpirationDisplay Time Idle Delay Delay Spin) Advertiser #1 1 10 days 1 minute 2seconds 2 seconds 5 minutes Advertiser #2 10  2 days 1 minute 2 seconds2 seconds 5 minutes Advertiser #3 9 1 day 1 minute 2 seconds 2 seconds 5minutes

Based on the tuning parameters selected for the ad displayed forAdvertiser #1, the ad will be displayed one time in each 20 minutebatch. Each time it is displayed, the ad will be displayed for at leastone minute before it is replaced with one of the other two ads. Based onthe setting of the idle delay parameter, the ad will not be replaceduntil the user has been idle for two seconds. The idle delay parameterbenefits the advertiser based on the premise that the user is morelikely to notice an ad shortly after going idle than when the user isactive.

If the user is not viewing the ad, because, for example, the ad isminimized or occluded or if the user is idle, the active delay parametercauses an ad rotation to be delayed until two seconds after the userreturns to being active. In this manner, the ad will be displayed on thescreen two seconds after the user has gone active. For example, the usermay have received a telephone call and consequently is not viewing thescreen or using the computer, which may cause a screen saver to bedisplayed on the screen. When the user reverts to being active, asevidenced by moving the mouse or using the keyboard, the screen saver isreplaced by the previously-viewed screen. The ad then is displayed twoseconds after that screen is displayed. This allows the user two secondsto click on the ad before the ad is replaced by another ad. Because theidle (no spin) tuning parameter for Advertiser #1 is set at 5 minutes,ad of Advertiser #1 will not be displayed after five minutes of idletime has passed. This parameter is set to avoid providing impressions ona screen that potentially is not being viewed by the user, as evidencedby the lack of user interaction with the computer.

As shown in FIG. 17, the ads in the sequence defined by the first set oftuning parameters are displayed until all of the ads have been displayed(step 1130). As illustrated in FIG. 14, ads are replaced by other adsaccording to the procedure 1000. It should be noted that an actualimplementation would include significantly more than three ads in eachbatch. This helps to ensure that the user sees some variety and that thesystem does not degenerate into displaying just one or two ads over andover again.

To provide specific examples of the decision making process 1000, FIGS.18-21 illustrate a sequential display of three ads, including two ads ofAdvertiser #1 and an animated ad of Advertiser #2, for which tuningparameters are provided in Table II. The screen shot illustrated in FIG.18 of the banner ad 1200 of Advertiser #1 on a web page 1205 may bepreceded by a number of conditions relevant to the tuning parameters ofTable II and display of the ad. For example, the user's computer may bein the idle condition or the user may have minimized the screendisplaying web page 1205. From these conditions, by pressing thekeyboard, moving the mouse, speaking into a microphone, or otherwisemaximizing that web page screen, the display goes to the active mode.Once the screen display is in the active mode, there will be asubsequent delay of two seconds before the banner ad 1200 is displayed,based upon the “active display” tuning parameter of two seconds, aslisted in Table II. Specifically, FIG. 18 illustrates the condition inwhich the two seconds delay has occurred and the banner ad 1200subsequently has been displayed. The ad 1200 will be displayed for atleast five seconds (i.e., the minimum display time for the ad from TableII), after which a related ad 1210 of FIG. 19 will be displayed on webpage 1205. That ad will be displayed for at least five seconds (i.e.,the minimum display time for the ad from Table II) before displayinganother ad, animated ad 1213, of FIGS. 20 and 21. FIGS. 20 and 21illustrate the use of tuning parameters to display animated ad 1213 thatincludes an area 1215 that includes animated text and object 1220. Thechange in displays in FIGS. 18-21 are based on the decision makingprocess 1000 illustrated in FIG. 14.

TABLE II Maximum Display Ad Minimum Idle Delay Active Idle (No CountExpiration Display Time (Normal) Delay Spin) Advertiser #1 5 1 day 1minute 5 seconds 2 second 5 minutes (Ad 1200) Advertiser #1 5 1 day 1minute 5 seconds 2 second 5 minutes (Ad 1210) Advertiser #2 5 1 day 90seconds 10 seconds  4 seconds 5 minutes (Ad 1213)

Referring to FIGS. 22 and 23, in another implementation of tuningparameters the decision making process 1000 is applied to the instantmessaging service 800 (see FIGS. 8-12) using the tuning parameter listedin Table III. For ease of explanation, only two ads, the ad 815 and thead 870, are discussed. In an actual implementation, more than two adscould be sequentially displayed.

TABLE III Maximum Display Minimum Active Idle Count Ad ExpirationDisplay Time Idle Delay Delay (No Spin) Ad 815 5 2 days 3 minutes 2seconds 2 seconds 5 minutes Ad 870 10 2 days 4 minutes 2 seconds 2seconds 5 minutes

The tuning parameters listed in Table III are used to control thedisplay of the ads 815, 870. As discussed above with respect to FIGS.18-21, the display of the non-animated ad 815 may be preceded by anumber of conditions relevant to the procedure 1000 (FIG. 14) and to thetuning parameters of Table III. For example, the ads and tuningparameters have been loaded (step 1005), user information obtained (step1010), an ad displayed with a count less than the maximum display count(step 1030), the count incremented (step 1033), and the timer (T)initialized. The next event in the procedure 1000 that occurs is tocheck the tuning parameters (step 1040). Assume that the user has justgone idle after the ad 815 has been displayed for at least 180 seconds(i.e., a period greater than the minimum display time of Table III). Theclient software will first determine whether the ad 815 has beendisplayed for a period greater than the minimum display time (step1050). Assuming that the ad has been displayed for that period, theclient software will then determine whether the user is idle (step1056). Assuming that the user is idle, the client software nextdetermines whether the timer (I) is less than the no spin tuningparameter (step 1059).

If the timer (T) is greater than the no spin tuning parameter, theclient software determines whether the timer is greater than theexpiration tuning parameter (step 1068). If the timer is greater thanthe expiration tuning parameter, the ad is cleared (step 1071) and theclient software determines that no new ad is to be displayed (step 1053)and returns to the procedure 1000.

If the user has been idle for less than the no spin tuning parameter,the client software determines whether the idle timer (I) is greaterthan the idle delay tuning parameter (step 1062). Assuming that thetimer (I) has exceeded the idle delay tuning parameter, a new ad (i.e.,ad 870) is selected for display (step 1065) and the client softwarereturns to the procedure 1000.

Upon returning to the procedure 1000, the software determines whetherthere has been a change in the user's status (step 1080). If so, thesoftware obtains user information (step 1085). Next, the softwaredetermines whether a new ad should be displayed (step 1090). If a new adshould be displayed, the procedure loops back and displays the next adthat has a count less than the maximum display count tuning parameter(step 1030). If a new ad should not be displayed, the software loopsback and checks the tuning parameters again (step 1040).

In general, the tuning parameters and their use described above can beapplied to any form of computer-based advertising, such as web pages,web TV applications, and instant messaging services. Techniques usingthe tuning parameters provide substantially improved effectiveness whenincorporated in client-based software (i.e., software that resides or isinstalled on the user's computer). Such software may be, for example, abrowser, an instant messaging service, a web-based TV application, or anInternet provider's proprietary client-based software that is suppliedto a user when signing up for Internet service from that provider. Thetuning parameters are delivered to the client-based software from thehost computer at the start of a session when the client's computerinitially connects to the host's computer.

After the tuning parameters are delivered to the client's computer, theparameters implement the display of ads based on those parameters.Because the display of ads is influenced by the quantity of time duringwhich the user is active or idle, or the screen is minimized, the adswill be viewed over a variable length of time. Conceivably, not all ofthe ads will be viewed during the user's connection to the host, or theyall may be viewed during a first portion of the user's connection to thehost. In the case of the latter, the user's computer will request thatthe host computer supply a new set of ads and associated tuningparameters. In this manner, the user's computer will be supplied asecond set of ads and associated tuning parameters whenever the user hasviewed the entire set of previous ads.

In general, each batch of ads and parameters is designed to be more thanenough for the client software to show before the next batch of ads isfetched. In other words, the batches rarely run out before the 20 minuteinter-batch interval has expired. Accordingly, sending a batch of ads tothe client does not in and of itself generate impressions. It is the actof the client displaying the ads, in accordance with the parameters,that generates impressions. For this reason, the client reports back tothe host on how many impressions and/or click-throughs have beengenerated. This allows the host to adjust the counts of how many adsneed to be displayed, and to adjust the tuning parameters accordinglyfor future batches. The client reports these actual impression counts attwo different times. First, when it goes to fetch a new batch of ads itreports the impressions that were generated since the last time itreported. Second, if the user clicks on an ad, the client reports on theimpressions since the last report, and, of course, the click. In thismanner, the advertiser is assured that the impressions purchased aredelivered because the user's next connection to the host computer willinclude a set of ads and tuning parameters that are specified based onthe number of ads viewed in the previous session. In addition, when theuser logs out, information, such as the number of clicks and theimpressions viewed by the user, is returned to the host computer.

In addition to notifying the host computer of the quantity ofimpressions provided, the user's computer provides information about theclicks the user has made. When a user clicks through an ad, thatinformation is recorded and provided to the host computer, and can beused to analyze the effectiveness of an ad as well as the tuningparameters specified for the ad. For example, a matrix of tuningparameters can be selected and correlated to click-through rate todetermine the most effective tuning parameters with respect to aparticular user, classes of users, users in general, or for a format ofadvertising.

Each tuning parameter, or a combination of tuning parameters, can beoptimized with respect to click-through rate by using standardoptimization methods. This may be done, for example, according to theprocedure 1300 illustrated in FIG. 24. According to the procedure 1300,to optimize, for example, the idle delay tuning parameter, the idledelay tuning parameters for a group of ads can be set to vary, forexample, between five, ten, fifteen, and twenty seconds with theremaining tuning parameters held constant (step 1305). The tuningparameters are stored on the host computer (step 1310) and downloaded toa user's computer (step 1315). While the user engages in an onlinesession, the ads are displayed as defined by the set of tuningparameters (step 1320). Click-through events are recorded for the ads(step 1325) and uploaded to the host computer (step 1330). From thisinformation, the click-through rate for the ads can be measured andcorrelated with the idle delay (step 1335). The host then uses thecorrelation to set an optimum idle delay time for individual users,classes of users, or users in general (step 1340). Similar optimizationscan be performed for each tuning parameter. To determine the optimumtuning parameters for an advertising format, such as animated ornon-animated, the tuning parameters can be varied for the format andcorrelated with click-through rate.

The techniques, methods and systems described here may findapplicability in any computing or processing environment in whichcontent is to be displayed to a viewer. In particular, the concept ofvarying the timing between displayed content transitions could be usedwhenever it is desirable to attract and/or retain the viewer'sattention. For example, web page content other than, or in addition to,ads could be displayed with dynamically altered transition timing. Asanother example, the timing between displays of status indicators orwarnings could be varied to engage an equipment operator such as a pilotor a nuclear plant operator. The timing also can be used in interactivesoftware applications in which the user must interact with part of ascreen or display. For example, installation software may use thetechniques and methods described here to assist the user installing thesoftware by varying the timing of interactive portions of the screen orportions that have key information that the user must notice and read.

Various implementations of the systems and techniques described here maybe realized in digital electronic circuitry, or in computer hardware,firmware, software, or in combinations thereof. A system or otherapparatus that uses one or more of the techniques and methods describedhere may be implemented as a computer-readable storage medium,configured with a computer program, where the storage medium soconfigured causes a computer system to operate on input and/or generateoutput in a specific and predefined manner. Such a computer system mayinclude one or more programmable processors that receive data andinstructions from, and transmit data and instructions to, a data storagesystem, and suitable input and output devices.

Each computer program may be implemented in a high-level procedural orobject-oriented programming language, or in assembly or machine languageif desired; and in any case, the language may be a compiled orinterpreted language. Suitable processors include, by way of example,both general and special purpose microprocessors.

Generally, a processor will receive instructions and data from aread-only memory and/or a random access memory. Storage devices suitablefor tangibly embodying computer program instructions and data includeall forms of non-volatile memory, including semiconductor memorydevices, such as EPROM, EEPROM, and flash memory devices; magnetic diskssuch as internal hard disks and removable disks; magneto-optical disks;and CD-ROM disks.

Any of the foregoing may be supplemented by, or implemented in,specially designed ASICs (application-specific integrated circuits).

A number of embodiments have been described. Nevertheless, it will beunderstood that various modifications may be made without departing fromthe spirit and scope of the invention. Accordingly, other embodimentsare within the scope of the following claims.

1-28. (canceled)
 29. A method for displaying advertisements in acomputer network environment, the method comprising: providingadvertisements; providing one or more tuning parameters configured tocause a display of a first advertisement to be changed to a display ofanother advertisement; and downloading the advertisements and tuningparameters to a viewer's computer.
 30. The method of claim 29, whereinthe tuning parameters include an ad expiration parameter configured toset the quantity of time for which an advertisement is displayed. 31.The method of claim 29, wherein the tuning parameters include a maximumdisplay count configured to set a maximum number of times anadvertisement may be displayed.
 32. The method of claim 29, wherein thetuning parameters include a minimum display time configured to set aminimum amount of time that an advertisement may be displayed.
 33. Themethod of claim 29, wherein the tuning parameters include an idle delayconfigured to cause a delay from the time the viewer's computer has goneidle before the first advertisement is replaced with the secondadvertisement.
 34. The method of claim 29, wherein the tuning parametersinclude an active delay configured to cause a delay from the time theviewer's computer goes active before displaying a banner advertisement.35. The method of claim 29, wherein the tuning parameters include anidle (no spin) parameter configured to stop the display of the firstadvertisement from being replaced with the display of the secondadvertisement after the viewer's computer goes idle.
 36. The method ofclaim 29, wherein advertisements are displayed on an instant messagingclient.
 37. The method of claim 29, wherein advertisements are displayedon an Internet browser.
 38. The method of claim 29, wherein the tuningparameters are configured to change between the display of the firstadvertisement and the display of another advertisement based on theviewer's activity with respect to the viewer's computer.
 39. The methodof claim 29, further comprising: storing click-through information forthe advertisements; and sending the click-through information to a hostcomputer.
 40. The method of claim 39, further comprising: varying thetuning parameters downloaded to the viewer's computer; and utilizing acorrelation technique to determine a correlation between the tuningparameters and the click-through rate.
 41. The method of claim 40,further comprising setting another set of tuning parameters based on thecorrelation between the first tuning parameters and the click-throughrate.
 42. A computer-based system for displaying advertisements in acomputer network environment, the system comprising: software configuredto provide advertisements; software configured to provide one or moretuning parameters that cause a display of a first advertisement to bechanged to a display of another advertisement; and software to downloadthe advertisements and tuning parameters to a viewer's computer.
 43. Thecomputer-based system of claim 42, wherein the tuning parameters includean ad expiration parameter that sets the quantity of time for which anadvertisement is available for display.
 44. The computer-based system ofclaim 42, wherein the tuning parameters include a maximum display countthat sets a maximum number of times an advertisement may be displayed toany individual user viewing a batch of advertisements.
 45. Thecomputer-based system of claim 42, wherein the tuning parameters includea minimum display time that sets a minimum amount of time that anadvertisement may be displayed before another advertisement isdisplayed.
 46. The computer-based system of claim 42, wherein the tuningparameters include an idle delay that causes a delay from the time auser has gone idle before a first advertisement is replaced with anotheradvertisement.
 47. The computer-based system of claim 42, wherein thetuning parameters include an active delay that causes a delay from thetime a user goes active before displaying another advertisement.
 48. Thecomputer-based system of claim 42, wherein the tuning parameters includean idle (no spin) parameter that stops the display of a firstadvertisement from being replaced with the display of anotheradvertisement after a user goes idle.
 49. The computer-based system ofclaim 42, wherein advertisements are displayed on an instant messagingclient.
 50. The computer-based system of claim 42, whereinadvertisements are displayed on an Internet browser.
 51. Thecomputer-based system of claim 42, wherein the tuning parameters areconfigured to change between the display of the first advertisement andthe display of another advertisement based on the viewer's activity withrespect to the viewer's computer.
 52. The computer-based system of claim42, further comprising: software configured to store click-throughinformation for the advertisements; and software configured to send theclick-through information to a host computer.
 53. The computer-basedsystem of claim 52, further comprising: software configured to vary thetuning parameters downloaded to the viewer's computer; and softwareconfigured to utilize a correlation technique to determine a correlationbetween the tuning parameters and the click-through rate.
 54. Thecomputer-based system of claim 53, further comprising softwareconfigured to set another set of tuning parameters based on thecorrelation between the first tuning parameters and the click-throughrate. 55-57. (canceled)
 58. A system for timing the display ofadvertisements on a web page, the system comprising: a host computer; aset of at least a first advertisement and a second advertisement; a setof tuning parameters stored on the host computer, configured to cause adisplay of the first advertisement to be changed to a display of thesecond advertisement, and downloadable to a user computer; and asoftware program stored on the host computer and including the set oftuning parameters.
 59. The system of claim 58, wherein the web page isan instant messaging client.
 60. The system of claim 58, wherein the webpage is an Internet browser.
 61. The system of claim 58, wherein the setof tuning parameters are configured to change between the display of thefirst advertisement and the display of the second advertisement based ona user's activity with respect to the user computer.
 62. The system ofclaim 58, wherein the software stores click-through information for thefirst advertisement and the second advertisement and sends theclick-through information to the host computer.
 63. The system of claim62, wherein the tuning parameters are configured to be varied, analyzedto provide a correlation between the tuning parameters and theclick-through rate, and modified to provide a second set of tuningparameters.